﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Metadados;
using MySql.Data.MySqlClient;
using System.Data;


namespace Dados
{
    public class DBCotacao
    {
        private ConexaoMYSQL objConexao = new ConexaoMYSQL();

        public bool incluir(Cotacao obj)
        {
            bool blnRetorno = false;

            string strSql = "INSERT INTO COTACAO (cotCodigo,forCpfCnpj,cotDataInicio,cotDataFim,cotImportanciaValor," +
                            "cotImportanciaEntrega,cotImportanciaPrazo,cotPrazoEntregaFornecedor,cotPrazoPagamentoFornecedor," +
                            "cotStatus,cotPontualidade,cotQualidade,cotAtendimento,cotAssistencia,cotConfiabilidade) " +
                            "VALUES (@p_cotCodigo,@p_fotCpfCnpj,@p_cotDataInicio,@p_cotDataFim,@p_cotImportanciaValor," +
                            "@p_cotImportanciaPrazo,@p_cotPrazoEntregaFornecedor,@p_cotPrazoPagamentoFornecedor,@p_cotStatus," +
                            "@p_cotPontualidade,@p_cotQualidade,@p_cotAtendimento,@p_cotAssistencia,@p_cotConfiabilidade)";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", obj.cotCodigo));
            objParams.Add(new MySqlParameter("@p_forCpfCnpj", obj.forCpfCnpj));
            objParams.Add(new MySqlParameter("@p_cotDataInicio", obj.cotDataInicio));
            objParams.Add(new MySqlParameter("@p_cotDataFim", obj.cotDataFim));
            objParams.Add(new MySqlParameter("@p_cotImportanciaValor", obj.cotImportanciaValor));
            objParams.Add(new MySqlParameter("@p_cotImportanciaEntrega", obj.cotImportanciaEntrega));
            objParams.Add(new MySqlParameter("@p_cotImportanciaPrazo", obj.cotImportanciaPrazo));
            objParams.Add(new MySqlParameter("@p_cotPrazoEntregaFornecedor", obj.cotPrazoEntregaFornecedor));
            objParams.Add(new MySqlParameter("@p_cotPrazoPagamentoFornecedor", obj.cotPrazoPagamentoFornecedor));
            objParams.Add(new MySqlParameter("@p_cotStatus", obj.cotStatus));
            objParams.Add(new MySqlParameter("@p_cotPontualidade", obj.cotPontualidade));
            objParams.Add(new MySqlParameter("@p_cotQualidade", obj.cotQualidade));
            objParams.Add(new MySqlParameter("@p_cotAtendimento", obj.cotAtendimento));
            objParams.Add(new MySqlParameter("@p_cotAssistencia", obj.cotAssistencia));
            objParams.Add(new MySqlParameter("@p_cotConfiabilidade", obj.cotConfiabilidade));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public bool atualizar(Cotacao obj)
        {
            bool blnRetorno = false;

            string strSql = "UPDATE COTACAO SET forCpfCnpj = @p_forCpfCnpj, cotDataInicio = @p_cotDataInicio, cotDataFim = @pcotDataFim, " +
                            "cotImportanciaValor = @p_cotImportanciaValor, cotImportanciaEntrega = @p_cotImportanciaEntrega, " +
                            "cotImportanciaPrazo = @p_cotImportanciaPrazo, cotPrazoEntregaFornecedor = @p_cotPrazoEntregaFornecedor, " +
                            "cotPrazoPagamentoFornecedor = @p_cotPrazoPagamentoFornecedor, cotStatus = @p_cotStatus, " +
                            "cotPontualidade = @p_cotPontualidade, cotQualidade = @p_cotQualidade, cotAtendimento = @p_cotAtendimento, " +
                            "cotAssistencia = @p_cotAssistencia, cotConfiabilidade = @p_cotConfiabilidade " +
                            "WHERE cotCodigo = @p_cotCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_forCpfCnpj", obj.forCpfCnpj));
            objParams.Add(new MySqlParameter("@p_cotDataInicio", obj.cotDataInicio));
            objParams.Add(new MySqlParameter("@p_cotDataFim", obj.cotDataFim));
            objParams.Add(new MySqlParameter("@p_cotImportanciaValor", obj.cotImportanciaValor));
            objParams.Add(new MySqlParameter("@p_cotImportanciaEntrega", obj.cotImportanciaEntrega));
            objParams.Add(new MySqlParameter("@p_cotImportanciaPrazo", obj.cotImportanciaPrazo));
            objParams.Add(new MySqlParameter("@p_cotPrazoEntregaFornecedor", obj.cotPrazoEntregaFornecedor));
            objParams.Add(new MySqlParameter("@p_cotPrazoPagamentoFornecedor", obj.cotPrazoPagamentoFornecedor));
            objParams.Add(new MySqlParameter("@p_cotStatus", obj.cotStatus));
            objParams.Add(new MySqlParameter("@p_cotPontualidade", obj.cotPontualidade));
            objParams.Add(new MySqlParameter("@p_cotQualidade", obj.cotQualidade));
            objParams.Add(new MySqlParameter("@p_cotAtendimento", obj.cotAtendimento));
            objParams.Add(new MySqlParameter("@p_cotAssistencia", obj.cotAssistencia));
            objParams.Add(new MySqlParameter("@p_cotConfiabilidade", obj.cotConfiabilidade));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public bool excluir(int p_cotCodigo)
        {
            bool blnRetorno = false;

            string strSql = "DELETE FROM COTACAO WHERE cotCodigo = @p_cotCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", p_cotCodigo));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public List<Cotacao> consultar(int p_cotCodigo)
        {
            string strSql = "SELECT cotCodigo,forCpfCnpj,cotDataInicio,cotDataFim,cotImportanciaValor," +
                            "cotImportanciaEntrega,cotImportanciaPrazo,cotPrazoEntregaFornecedor,cotPrazoPagamentoFornecedor," +
                            "cotStatus,cotPontualidade,cotQualidade,cotAtendimento,cotAssistencia,cotConfiabilidade FROM COTACAO " +
                            "WHERE cotCodigo = @p_cotCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", p_cotCodigo));

            DataTable objTbCotacoes = objConexao.retornarTabela(strSql, objParams, "Cotacao");

            List<Cotacao> objCotacoes = new List<Cotacao>();
            foreach (DataRow row in objTbCotacoes.Rows)
            {
                Cotacao objCotacao = new Cotacao();
                objCotacao.cotCodigo = (int)row["cotCodigo"];
                objCotacao.forCpfCnpj = (string)row["forCpfCnpj"];
                objCotacao.cotDataInicio = (DateTime)row["cotDataInicio"];
                objCotacao.cotDataFim = (DateTime)row["cotDataFim"];
                objCotacao.cotImportanciaValor = (int)row["cotImportanciaValor"];
                objCotacao.cotImportanciaEntrega = (int)row["cotImportanciaEntrega"];
                objCotacao.cotImportanciaPrazo = (int)row["cotImportanciaPrazo"];
                objCotacao.cotPrazoEntregaFornecedor = (int)row["cotPrazoEntregaFornecedor"];
                objCotacao.cotPrazoPagamentoFornecedor = (int)row["cotPrazoPagamentoFornecedor"];
                objCotacao.cotStatus = (int)row["cotStatus"];
                objCotacao.cotPontualidade = (int)row["cotPontualidade"];
                objCotacao.cotQualidade = (int)row["cotQualidade"];
                objCotacao.cotAtendimento = (int)row["cotAtendimento"];
                objCotacao.cotAssistencia = (int)row["cotAssistencia"];
                objCotacao.cotConfiabilidade = (int)row["cotConfiabilidade"];

                objCotacoes.Add(objCotacao);
            }

            return objCotacoes;
        }

        public DataView listar(string p_forCpfCnpj)
        {
            string strSql = "SELECT * FROM COTACAO WHERE cotCodigo <> 0 ";

            List<MySqlParameter> objParams = new List<MySqlParameter>();

            if (p_forCpfCnpj.Trim() != "")
            {
                strSql += "AND p_forCpfCnpj LIKE @p_p_forCpfCnpj";
                objParams.Add(new MySqlParameter("@p_p_forCpfCnpj", "%" + p_forCpfCnpj + "%"));
            }

            DataTable objTbCotacoes = new DataTable();

            objTbCotacoes = objConexao.retornarTabela(strSql, objParams, "Cotacao");

            return objTbCotacoes.DefaultView;
        }
    }
}
